package com.ruoyi;

import com.ruoyi.deviceManagement.service.DeviceCrudService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DeviceCrudConfig {

    @Bean
    public DeviceCrudService deviceCrudService() {
        IotConfig config = new IotConfig();
        // 提前解析productId
        long productId;
        try {
            productId = Long.parseLong(config.getProductId());
        } catch (NumberFormatException | NullPointerException e) {
            // 实际项目中应根据需求处理异常
            // 选项1: 使用默认值（不推荐生产环境）
            productId = 0L;

            // 选项2: 抛出明确的异常（推荐）
            // throw new IllegalArgumentException("无效的ProductId: " + config.getProductId(), e);
        }

        // 创建服务实例时使用解析后的productId
        return new DeviceCrudService(
                IotConfig.getAppKey(),
                config.getAppSecret(),
                config.getMasterKey(),
                productId,  // 使用解析后的long值
                config.getDbUrl(),
                config.getDbUser(),
                config.getDbPassword()
        );
    }
}
